The present invention relates to data processing systems or networks and, more particularly, to data processing systems employing broadcast packet switching.
In traditional data processing systems, several subsystems are linked to each other along a system bus and share the bus for the transfer of data. The control of the bus is typically given to one subsystem. Accordingly, when a message is to be sent from one subsystem to another subsystem, either the message has to be sent through the controlling subsystem or the controlling subsystem has to at least occasionally operatively connect each subsystem to the bus in order to pass its message.
As advancements in semiconductor technology have permitted increased amounts of circuitry to be fabricated on a single integrated circuit chip, there has been increasing interest in developing data processing systems that do not rely on a single subsystem to control the transmission of messages among plural subsystems in the data processing systems. It is widely believed that future data processing systems will be comprised of subsystem modules. Each module provides either processing or memory capability. No single module or subsystem in the system will have control over the system bus but, rather, each module shares with the other modules the control of the communication lines that link the modules. When the user of the system desires to increase the capability of his system, he simply adds modules. Ideally, little or no software or hardware modifications would be needed in an existing system in order to add modules.
Recently proposed data processing systems that eliminate central control of the system bus use a feature referred to in the art as "broadcast packet switching". Broadcast packet switching means that when each subsystem desires to transmit a message, it transmits the message on the bus so that all subsystems "hear" or receive the message. The message, or "packet", includes a destination address so that only the addressed subsystem will act on the message.
One example of a system or network employing broadcast packet switching is the ETHERNET System, described in U.S. Pat. No. 4,063,220, issued to Robert M. Metcalfe et al., and in Metcalfe & Boggs, Ethernet: Distributed Packet Switching for Local Computer Networks, 7 Comm. of The ACM 395 (1976). In the ETHERNET System, a plurality of subsystems or stations are connected by taps along a coaxial cable bus, so that the message generated by any station is broadcasted in both directions along the coaxial cable to all of the stations. In order to prevent message interference resulting from simultaneous transmission from two stations, the stations are operated so that they will not transmit if they detect a message already being transmitted on the bus. Also, each station compares the message that it is transmitting with the message being carried on the bus, in order to detect interference resulting from two stations beginning their transmission simultaneously.
Another example of a system employing broadcast packet switching is the FIBERNET System, described in Rawson and Metcalfe, Fibernet: Multimode Optical Fibers For Local Computer Networks, 26 IEEE Trans. on Comm. 93 (1978). In the FIBERNET System, a plurality of stations or subsystems are each connected to an optical star coupler by a pair of optical transmission lines. One of each pair of transmission lines carries optical signals from the star coupler to a station, and the other of each pair of transmission lines carry signals from the station to the star coupler. When a signal is generated by any station, the signal is passed through the star coupler to all of the stations, including the station from which it came.
The use of a star coupler, such as contemplated in the FIBERNET System, does provide some advantages over the use of a single coaxial cable bus, such as that proposed for use in the ETHERNET System. For example, in the FIBERNET System, all messages pass through the star coupler before being received by any of the subsystems. Consequently, if two subsystems should transmit simultaneously, the two messages are combined at the star coupler and all subsystems receive the same combined and garbled message. In contrast, two interfering messages in the single bus ETHERNET System can combine differently at all points along the bus, and perhaps "look" like a valid message to one subsystem and an invalid message to another subsystem.
Furthermore, all messages in a system employing a centrally located star coupler, such as the FIBERNET System, are of the same strength or intensity, since all subsystems are located at approximately equal distances from the star coupler. In the FIBERNET System, in contrast to the ETHERNET System, there is little likelihood of the circumstances occurring where two messages interfere and are each invalid, but the messages are not sensed as invalid because of one message being much stronger than the other.
There are some problems, however, also associated with the FIBERNET System. For example, the FIBERNET System is not as readily expandable as, for example, the ETHERNET System, since a star coupler typically has a limited number of ports which receive the optical transmission lines leading to each subsystem. As the system is expanded, the star coupler must be replaced by a star coupler having a larger number of ports.
A further problem associated with both the ETHERNET System and the FIBERNET System results from the lack of central control over the use of the communication lines linking the subsystems. In both systems, it is absolutely essential that every subsystem, whether it is an intended destination of each message or not, receive every message in order to determine if it is being addressed by the message. The reliability of the entire system is jeopardized if but a single subsystem is unable to receive a message, and the transmitting subsystem is unaware of this circumstance.
As a result, there has arisen the need for a reliable and readily expandable data processing system that employs broadcast packet switching.